<!--
*
* Copyright 2015 HISP Tanzania
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
* @since 2015
* @author Joseph Chingalo profschingalo@gmail.com>
*
*
-->
<div class="organisation-unit">
  <span class="organisation-unit-icon">
    <ion-icon (click)="toggleTree(organisationUnit)" name="ios-add-circle-outline" *ngIf="(!hasOrgUnitChildrenOpened[organisationUnit.id]) && (organisationUnit.children && organisationUnit.children.length > 0)"
      item-left></ion-icon>
    <ion-icon (click)="toggleTree(organisationUnit)" name="ios-remove-circle-outline" *ngIf="(hasOrgUnitChildrenOpened[organisationUnit.id]) && (organisationUnit.children && organisationUnit.children.length > 0)"
      item-left></ion-icon>
  </span>
  <span (click)="selectOrganisationUnit(organisationUnit)" [ngClass]="(organisationUnit.children && organisationUnit.children.length == 0)? 'organisation-unit-without-children':''">
    &nbsp;
    <span ion-text [color]="(seletectedOrganisationUnitIds.indexOf(organisationUnit.id) > -1) ?'current' : 'font-color'">{{ organisationUnit.name }}</span>
  </span>
</div>

<div class="organisation-unit-children" *ngIf="hasOrgUnitChildrenOpened[organisationUnit.id]">
  <div *ngIf="!(isOrganisationUnitsFetched && hasOrgUnitChildrenLoaded)">
    <div>
      <span style="text-align: center" item-left>
        <loading loadingSize="small"></loading>
      </span>
      <span>
        {{ translationMapper['Discovering organisation units'] }}
      </span>
    </div>
  </div>
  <div *ngIf="hasErrorOccurred">
    <ion-item>
      {{ translationMapper['Failed to discover organisation unit children'] }}
    </ion-item>
  </div>
  <div *ngIf="isOrganisationUnitsFetched && hasOrgUnitChildrenLoaded && !hasErrorOccurred">
    <div *ngFor="let organisationUnit of organisationUnit.children;trackBy: trackByFn">
      <multi-organisation-unit-tree [selectedOrgUnits]="selectedOrgUnits" (activate)="onActivateOu($event)" (deactivate)="onDeactivateOu($event)"
        [hasOrgUnitChildrenOpened]="hasOrgUnitChildrenOpened" [organisationUnit]="organisationUnit" [currentUser]="currentUser"
        [toggledOuIds]="toggledOuIds"></multi-organisation-unit-tree>
    </div>
  </div>
</div>
